
# 生产者
#     创建的包中的文件，必须起名喂 tasks.py
#     1.所谓的生产者其实就是任务，任务就是函数
#     2.函数必须要被celery 的实例对象的task装饰器装饰
#     3.这个函数需可以让celery 自动检测  自动检测的时tasks.py 文件

# 中间这
# 消费者
#     1.消费者通过一条指令在虚拟环境中设置就可以了

# Clelery将三者串联起来
# 导入celery
from celery import Celery
# 0. 在创建 celery之前我们需要加载django工程的配置文件

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings")

# 1. Clelery将三者串联起来      创建一个celery实例
# main 相当于给 celery 实例一个唯一的名字
# 一般我们习惯使用包名/文件名
app = Celery(main="celery_tasks")

# 2.设置中间人,让celery 加载中间人配置信息
#文件路径
app.config_from_object("celery_tasks.config")

#3.让celery 自动检测任务
#列表
# 列表元素的值就是任务的包路径
app.autodiscover_tasks(["celery_tasks.sms","celery_tasks.email","celery_tasks.static_html"])

# 4.运行消费者
#     语法： celery -A proj worker -l info
# proj 指的是 celery 实例对象的脚本路径
# 虚拟环境中运行指令
# celery -A celery_tasks.main worker -l info